iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
Modern Web

Angular,啟動。系列 第 5

Day05-Template 範本: 資料綁定 DOM ↔ Component

  • 分享至 

  • xImage
  •  

我學會表格置左對齊了!😊🎉🎉

資料綁定 (Data Binding) 簡介

Template (.html) 與 Component (.ts) 互相傳遞資料的機制。

編號 方式 範例 html -?- ts
文字插值 Text Interpolation <p>{{ value }}</p>
屬性繫結 Property Binding [disabled] = “value”
事件繫結 Event Binding (click)=”add()”
雙向繫結 Two-Way Binding [(ngModel)] = “value”

2屬性繫結 Property Binding

DOM ← Component

property 名稱 範例
Emelent <img [src]="imageUrl">
Component <app-child [name]="value1"></app-child>
Class <p [class.myClass1]="isSuccess”>成功</p>
Attribute <td [attr.colspan]="1 + 1">總計</td>
Style <p [style.color]="(isSuccess)?'red':'gray'">Test</p>
Directive <li [ngClass]="{myClass1: isSuccess}"></li>

NgClass 與 NgStyle

Angular 提供可用來動態改變 DOM 元素 CSS 的指令。

來源 範例
Native Attributes <p class="myClass1" style="border: 1px;"></p>
Angular Bindings <p [class.myClass1]="isSuccess" [style.border]="isSuccess"></p>
ngClass <p [ngClass]="{'myClass1': isSuccess, 'myClass2': false}"></p>
ngStyle <p [ngStyle]="{'color': 'red'}"></p>

注意事項

❌盡量避免在資料綁定時做以下動作:

動作 範例
賦值 = += -=
運算子 new typeof instanceof
連結表示式 ; ,
自增和自減運算子 ++ --

留意命名衝突

Angular 優先以下邏輯來載入:

  1. 範本變數名稱 (The template variable name)
  2. 指令上下文中的名稱 (A name in the directive's context)
  3. 元件成員名稱 (The component's member names)

舉個栗子🌰:

<h1>Hello, {{customer}}</h1>
<ul>
  <li *ngFor="let customer of customers">{{ customer.value }}</li>
</ul>
customers = [{value: 'Ebony'}, {value: 'Chiho'}];
customer = 'Padma';

顯示結果為:

Hello, Padma

  • Ebony
  • Chiho

*ngFor 會載入 customers 陣列內的項目,跟 customer 變數無關。
實務上盡量還是避免類似命名,回頭看自己有機率混亂。

資料來源

Angular - 瞭解繫結
Angular 基礎|從 Todo List 認識四種資料綁定 - HackMD
[Angular 深入淺出三十天] Day 07 - 基礎結構說明(二)


上一篇
Day04-Component 元件: 互動
下一篇
Day06-Template 範本: Pipes
系列文
Angular,啟動。30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言